1. Field of the Invention
This invention relates generally to data processing systems and, more particularly, to a technique in a data processing system for efficiently invoking a control program based on a predetermined signal in a specified register location.
2. Description of the Related Art
As data processing system programs have become larger and more complex, errors in the program have become increasingly hard to identify. The invalid memory reference remains one of the most common programming errors whether reading or writing an invalid address. For example, an array A(i,j) can have the requirement that 0.ltoreq.i,j.ltoreq.99. However, an attempt can be made to utilize an index (address) outside of this range. And the invalid address reference most often occurs when the referenced address is part of an array field. Therefore, during program execution, it is important that array addresses be tested to insure that they are within the boundaries of the array. In the past, the program has been provided with extra code to test the array addresses and, when an error, is encountered to call an appropriate responsive subroutine. The additional code for the testing of the array addresses has resulted in programs that are greatly increased in size and which execute at a correspondingly slower rate.
The problem of the testing of array addresses is part of a more general problem of testing a Boolean value and generating an exception when the result is false. Other applications, in addition to the testing of array addreses, include program assertion, testing for procedure success/failure return status and other Boolean tests for which current procedures involve unacceptable program (code) size and/or inefficient program execution.
A need has been felt for a technique that can expedite execution and reduce the program code (size) for programs, such as a program which tests array addresses, that can test Boolean values and generate an exception when the Boolean value is false.